<?php
//------------------------------------------------------------ Contraintes d'accès de la page

	// on vérifie que cette page est appelée à partir de l'index et que l'utilisateur a le droit de consultation
	if(isset($_SESSION) && ($GLOBALS['USER']['level'] >= 2 || $GLOBALS['USER']['admin'])){

?>
<?php
//------------------------------------------------------------ Définition des variables d'affichage

	// variable indiquant la page sélectionnée
	if(isset($_GET['l']) && numericInt($_GET['l'])){ 
		$page = $_GET['l'];
	}else{
		$page = 1;
	}
	
   $extraIcon = array();
	
	// variable indiquant l'ordre selon lequel on tri la liste
	if(isset($_GET['o'])){
		switch($_GET['o']){
		case 0: $ordre = 0; $ordreBDD = "ASC"; break;
		case 1: $ordre = 1; $ordreBDD = "DESC"; break;
		default: $ordre = 1; $ordreBDD = "DESC"; break;
		}
	}else{
		$ordre = 1;
		$ordreBDD = "DESC";
	}
	
	// variable indiquant la colonne selon laquelle on tri la liste
	if(isset($_GET['t'])){
		switch($_GET['t']){
		case 1: $tri = 1; $triBDD = "dateEntree ".$ordreBDD; break;
		case 2: $tri = 2; $triBDD = "dateRetour ".$ordreBDD.", dateRetourPrevu ".$ordreBDD; break;
		case 3: $tri = 3; $triBDD = "structure ".$ordreBDD; break;
		case 4: $tri = 4; $triBDD = "genre ".$ordreBDD.", espece ".$ordreBDD.", famille ".$ordreBDD.", variete ".$ordreBDD; break;
		default: $tri = 1; $triBDD = "dateEntree ".$ordreBDD; break;
		}
	}else{
		$tri = 1;
		$triBDD = "dateEntree ".$ordreBDD;
	}
	
	// Traitement des options
	$optionsSet = false;
	$optionsURL = "";
	
	if(isset($_POST['opt_seulDepasse']) || isset($_GET['opt_seulDepasse'])){
		$optionsURL .= "&amp;opt_seulDepasse=1";
		$optionsSet = true;
	}
	if((isset($_POST['opt_seulStatut']) || isset($_GET['opt_seulStatut'])) && (isset($_POST['opt_statutType']) || isset($_GET['opt_statutType']))){
		if(isset($_POST['opt_statutType'])){
			$opt_statutType = $_POST['opt_statutType'];
		}else{
			$opt_statutType = $_GET['opt_statutType'];
		}
		if($opt_statutType >= 1 && $opt_statutType <= 3){
			$optionsURL .= "&amp;opt_seulStatut=1&amp;opt_statutType=".$opt_statutType."";
			$optionsSet = true;
		}
	}
	
?>
<?php
//------------------------------------------------------------ Récupération de la liste des prets

	// On compte le nombre total de prets enregistrés
	$nb_total_prets = 0;
	
	$query_compte_prets = "SELECT COUNT(*) ";
	$query_compte_prets .= "FROM pret_entrant p ";
	$query_compte_prets .= "INNER JOIN entree en ON en.CODEPRETENTRANT = p.CODEPRETENTRANT ";
	$query_compte_prets .= "LEFT JOIN sortie so ON so.CODEPRETENTRANT = p.CODEPRETENTRANT ";
	$query_compte_prets .= "WHERE 1 ";
	// Si l'utilisateur a saisi des options
	if($optionsSet){
		if(isset($_POST['opt_seulDepasse']) || isset($_GET['opt_seulDepasse'])){
			$query_compte_prets .= "AND (so.DATESORTIE IS NULL AND p.DATERETOUR < CURDATE()) ";
		}
		if(isset($opt_statutType)){
			switch($opt_statutType){
			case 1: $query_compte_prets .= "AND en.DATEENTREE > CURDATE() "; break;
			case 2: $query_compte_prets .= "AND en.DATEENTREE <= CURDATE() AND (so.DATESORTIE IS NULL OR so.DATESORTIE > CURDATE()) "; break;
			case 3: $query_compte_prets .= "AND so.DATESORTIE <= CURDATE() "; break;
			}
		}
	}
	
	$result_compte_prets = mysql_query($query_compte_prets, $connexion) or logError("COMPTE PRETS ENTRANTS-".$query_compte_prets."-".mysql_error());
	
	$tab_compte_prets = mysql_fetch_row($result_compte_prets);
	
	$nb_total_prets = $tab_compte_prets[0];
	
	mysql_free_result($result_compte_prets);
	
	// récupération des informations des prets
	$query_recuperation_liste_prets = "SELECT p.CODEPRETENTRANT AS id, en.DATEENTREE AS dateEntree, so.DATESORTIE AS dateRetour, p.DATERETOUR AS dateRetourPrevu, st.CODEJB AS numcor, st.NOMSTRUCTURE AS nomStruct, st.CODEJB AS numcor, f.NOMFAMILLE AS famille, g.NOMGENRE AS genre, e.NOMESPECE AS espece, sesp.NOMSOUSESPECE AS sousespece, v.NOMVARIETE AS variete, en.SAC_CODESACHETGRAINE AS sachet, en.SEM_CODESEMIS AS semis, en.TOU_CODETOUFFE AS touffe ";
	$query_recuperation_liste_prets .= "FROM pret_entrant p ";
	$query_recuperation_liste_prets .= "INNER JOIN structure st ON st.CODESTRUCTURE = p.CODESTRUCTURE ";
	$query_recuperation_liste_prets .= "INNER JOIN entree en ON en.CODEPRETENTRANT = p.CODEPRETENTRANT ";
	$query_recuperation_liste_prets .= "LEFT JOIN sortie so ON so.CODEPRETENTRANT = p.CODEPRETENTRANT ";
	$query_recuperation_liste_prets .= "LEFT JOIN sachet_graines sa ON en.SAC_CODESACHETGRAINE = sa.CODESACHETGRAINE ";
	$query_recuperation_liste_prets .= "LEFT JOIN semis se ON en.SEM_CODESEMIS = se.CODESEMIS ";
	$query_recuperation_liste_prets .= "LEFT JOIN touffe tou ON en.TOU_CODETOUFFE = tou.CODETOUFFE ";
	$query_recuperation_liste_prets .= "LEFT JOIN taxon t ON t.CODETAXON = sa.CODETAXON OR t.CODETAXON = se.CODETAXON OR t.CODETAXON = tou.CODETAXON ";
	$query_recuperation_liste_prets .= "LEFT JOIN est_de_famille l1 INNER JOIN famille f ON f.CODEFAMILLE = l1.CODEFAMILLE ON l1.CODETAXON = t.CODETAXON AND l1.CODECLASSIFICATION = t.CODECLASSIFICATION ";
	$query_recuperation_liste_prets .= "LEFT JOIN appartient_a_genre l2 INNER JOIN genre g ON g.CODEGENRE = l2.CODEGENRE ON l2.CODETAXON = t.CODETAXON AND l2.CODECLASSIFICATION = t.CODECLASSIFICATION ";
	$query_recuperation_liste_prets .= "LEFT JOIN est_de_espece l3 INNER JOIN espece e ON e.CODEESPECE = l3.CODEESPECE ON l3.CODETAXON = t.CODETAXON AND l3.CODECLASSIFICATION = t.CODECLASSIFICATION ";
	$query_recuperation_liste_prets .= "LEFT JOIN est_de_sous_espece l33 INNER JOIN sous_espece sesp ON sesp.CODESOUSESPECE = l33.CODESOUSESPECE ON l33.CODETAXON = t.CODETAXON AND l33.CODECLASSIFICATION = t.CODECLASSIFICATION ";
	$query_recuperation_liste_prets .= "LEFT JOIN a_comme_variete l4 INNER JOIN variete v ON v.CODEVARIETE = l4.CODEVARIETE ON l4.CODETAXON = t.CODETAXON AND l4.CODECLASSIFICATION = t.CODECLASSIFICATION ";
	$query_recuperation_liste_prets .= "WHERE 1 ";
	// Si l'utilisateur a saisi des options
	if($optionsSet){
		if(isset($_POST['opt_seulDepasse']) || isset($_GET['opt_seulDepasse'])){
			$query_recuperation_liste_prets .= "AND (so.DATESORTIE IS NULL AND p.DATERETOUR < CURDATE()) ";
		}
		if(isset($opt_statutType)){
			switch($opt_statutType){
			case 1: $query_recuperation_liste_prets .= "AND en.DATEENTREE > CURDATE() "; break;
			case 2: $query_recuperation_liste_prets .= "AND en.DATEENTREE <= CURDATE() AND (so.DATESORTIE IS NULL OR so.DATESORTIE > CURDATE()) "; break;
			case 3: $query_recuperation_liste_prets .= "AND so.DATESORTIE <= CURDATE() "; break;
			}
		}
	}
	$query_recuperation_liste_prets .= "ORDER BY ".$triBDD." ";
	$query_recuperation_liste_prets .= "LIMIT ".(($page-1)*$GLOBALS['CONFIG']['nbParPage']).", ".($GLOBALS['CONFIG']['nbParPage'])." ";
	
	$result_recuperation_liste_prets = mysql_query($query_recuperation_liste_prets, $connexion) or logError("RECUPERATION LISTE PRETS ENTRANTS-".$query_recuperation_liste_prets."-".mysql_error());
	
	$lst_prets = array(); // on créé un tableau qui contient la liste des prêts ainsi que les informations de chacune
	$nb_prets = 0;
	while($tab_recuperation_liste_prets = mysql_fetch_assoc($result_recuperation_liste_prets)){
	
		$lst_prets[$nb_prets] = $tab_recuperation_liste_prets;
		$nb_prets++;
		
	}
	
	mysql_free_result($result_recuperation_liste_prets);

?>
<a name="liste"></a>
<h2>Liste des emprunts du jardin botanique</h2>

<?php 

   $tabth = array ('Date','Retour','Origine','Végétal','Statut');
   
   for($i=0;$i<$nb_prets;$i++){
      
		$enCours = false;
      
      if(!is_null($lst_prets[$i]['dateRetour'])){
   		$dateRetour = dateFr($lst_prets[$i]['dateRetour']);
   	}else{
   		if(!is_null($lst_prets[$i]['dateRetourPrevu'])){
   			if(strtotime($lst_prets[$i]['dateRetourPrevu']) < strtotime(date("Y-m-d")) && is_null($lst_prets[$i]['dateRetour'])){ // On utilise strtotime() afin d'éviter les problèmes avec les 0 initiaux dans une comparaison de chaines de caractères
   				$dateRetour = "<span style=\"color: #FF0000;\">".dateFr($lst_prets[$i]['dateRetourPrevu'])." (<i>prévu</i>)</span>";
   			}else{
   				$dateRetour = dateFr($lst_prets[$i]['dateRetourPrevu'])." (<i>prévu</i>)";
   			}
   		}else{
   			$dateRetour = "<i>non-précisée</i>";
   		}
   	}
      

   	if(!is_null($lst_prets[$i]['sachet'])){
   		$vegetal = "<b><i>Graines</i></b> : ";
   	}else if(!is_null($lst_prets[$i]['semis'])){
   		$vegetal = "<b><i>Semis</i></b> : ";
   	}else if(!is_null($lst_prets[$i]['touffe'])){
   		$vegetal = "<b><i>Touffe</i></b> : ";
   	}
   	$vegetal .= "(".htmlentities(capitalise($lst_prets[$i]['famille']), ENT_NOQUOTES, "UTF-8").") <b>".htmlentities(capitalise($lst_prets[$i]['genre']), ENT_NOQUOTES, "UTF-8")." ".htmlentities($lst_prets[$i]['espece'], ENT_NOQUOTES, "UTF-8")." ".htmlentities($lst_prets[$i]['sousespece'], ENT_NOQUOTES, "UTF-8")."</b> <i>".htmlentities(capitalise($lst_prets[$i]['variete']), ENT_NOQUOTES, "UTF-8")."</i>";

      
      if(strtotime($lst_prets[$i]['dateEntree']) <= strtotime(date("Y-m-d"))){ // On utilise strtotime() afin d'éviter les problèmes avec les 0 initiaux dans une comparaison de chaines de caractères
   		if(!is_null($lst_prets[$i]['dateRetour'])){
   			if(strtotime($lst_prets[$i]['dateRetour']) > strtotime(date("Y-m-d"))){ // On utilise strtotime() afin d'éviter les problèmes avec les 0 initiaux dans une comparaison de chaines de caractères
   				$statut = "<i><span style=\"font-weight: bold; color: #00AAFF;\">en cours</span></i>";
               $enCours = true;
   			}else{
   				$statut = "<i><span style=\"font-weight: bold; color: #FF0000;\">rendu</span></i>";
   			}
   		}else{
   			$statut = "<i><span style=\"font-weight: bold; color: #00AAFF;\">en cours</span></i>";
            $enCours = true;
   		}
   	}else{
   		$statut = "<i><span style=\"font-weight: bold; color: #00AA00;\">prévu</span></i>";
   	}
      
      if($enCours){
			if($GLOBALS['USER']['level'] >= 4 || $GLOBALS['USER']['admin']){ // l'utilisateur a le droit de modifier
				$extraIcon[$i] = " - <a href=\"index.php?p=gestion/pretentrant_retourne&amp;id=".$lst_prets[$i]['id']."\"><img src=\"images/sortie.png\" title=\"Indiquez le retour du végétal emprunté\" alt=\"Retourner\" /></a>";
			}
		}else{
			if($GLOBALS['USER']['level'] >= 4 || $GLOBALS['USER']['admin']){ // l'utilisateur a le droit de modifier
				$extraIcon[$i] = " - <a href=\"index.php?p=gestion/pretentrant_annule&amp;id=".$lst_prets[$i]['id']."\"><img src=\"images/annuler.png\" title=\"Annuler le rendu du végétal emprunté\" alt=\"Annuler rendu\" /></a>";
			}
		}
      
   
      $tab_result[$i] = array (  htmlentities($lst_prets[$i]['id'], ENT_NOQUOTES, "UTF-8"),
                                 dateFr(htmlentities($lst_prets[$i]['dateEntree'], ENT_NOQUOTES, "UTF-8")),
                                 $dateRetour,
                                 htmlentities("(".$lst_prets[$i]['numcor'].") ".SimplifyString($lst_prets[$i]['nomStruct'],30), ENT_NOQUOTES, "UTF-8"),
                                 $vegetal,
                                 $statut );
   
   }

   
   displayListe("pretentrant",850,$nb_total_prets,$optionsURL,'',1,$extraIcon);



?>

<div class="options" style="margin-left: auto; margin-right: auto; width: 875px">
	<span id="indOF_options"><?php if($optionsSet) echo "▼"; else echo "►"; ?></span> <a href="#liste" onclick="ouvrirFermerTXT('lst_options', 1, 'indOF_options', '▼', '►'); return false;">Options</a>
	<div id="lst_options" style="display: <?php if($optionsSet) echo "block"; else echo "none"; ?>;">
		<form id="frm_options" method="post" action="index.php?p=gestion/pretentrant_gere&amp;l=<?php echo $page; ?>&amp;t=<?php echo $tri; ?>&amp;o=<?php echo $ordre; ?>#liste">
			<input type="checkbox" name="opt_seulDepasse" onchange="document.getElementById('frm_options').submit();" <?php if(isset($_POST['opt_seulDepasse']) || isset($_GET['opt_seulDepasse'])) echo "checked=\"checked\""; ?> /> <label>Seulement les emprunts en retard</label><br />
			<input id="opt_seulStatut" type="checkbox" name="opt_seulStatut" <?php if(isset($_POST['opt_seulStatut']) || isset($_GET['opt_seulStatut'])) echo "checked=\"checked\""; ?> />
			<label>Seulement les emprunts</label> 
			<select name="opt_statutType" onchange="document.getElementById('opt_seulStatut').checked=true;">
				<option value="1" <?php if(isset($opt_statutType) && $opt_statutType == 1) echo "selected=\"selected\""; ?>>Prévus</option>
				<option value="2" <?php if(isset($opt_statutType) && $opt_statutType == 2) echo "selected=\"selected\""; ?>>En cours</option>
				<option value="3" <?php if(isset($opt_statutType) && $opt_statutType == 3) echo "selected=\"selected\""; ?>>Rendus</option>
			</select>
			<input type="submit" value="ok" />
		</form>
	</div>
</div>
<?php
//------------------------------------------------------------ Accès refusé à la page

	}else{
		if(isset($_SESSION)){
			if(!isset($_SESSION['user_id'])){ // si l'utilisateur n'est pas connecté
				include("pages/connexion.php");
			}else{ // si l'utilisateur est connecté et qu'il n'a pas accès à la page, c'est qu'il n'a pas le droit d'utilisation nécessaire
				include("pages/401.htm");
			}
		}
	}

?>